perm filename LIBCNT[S,SYS] blob
sn#000606 filedate 1972-03-24 generic text, type T, neo UTF8
00100 TITLE LIBCNT
00200
00300 OPDEF PEEK [CALLI 33]
00400 OPDEF SLEEP [CALLI 31]
00500 OPDEF UFBRD [706B8]
00600 OPDEF UFBGET [CALLI 400010]
00700 OPDEF UFBWRT [707B8]
00800 OPDEF DATIME [CALLI 22]
00900
01000 PLN←←40
01100 ARRAY PDL[PLN],SYSBUF[100],GOTB[6],BTIMES[6]
01200 INTEGER NMINS,LSTSEC
01300
01400 P←17
01500
01600 START: MOVE P,[IOWD PLN,PDL]
01700 DATIME 1,
01800 MOVEI 2,5
01900 FTBS: MOVEM 1,BTIMES(2)
02000 SOJGE 2,FTBS
02100 MOVEI 2,5
02200 MOVEI 1,400167
02300 MOVEM 1,LSTSEC
02400 GLOOP: UFBGET 1,
02500 JRST [ SOS 1,LSTSEC
02600 JRST GLOOP]
02700 HRRZM 1,GOTB(2)
02800 SOS 1,LSTSEC
02900 SOJGE 2,GLOOP
03000 MOVEI 2,5
03100 WRLOOP: MOVE 1,GOTB(2)
03200 UFBWRT 1,RDTAB
03300 JRST WRTERR
03400 WRTINC: SOJGE 2,WRLOOP
03500 BIGLOP: MOVEI 1,247
03600 PEEK 1,
03700 ADDI 1,24
03800 MOVEI 2,(1)
03900 PEEK 2,
04000 MOVEM 2,NLERRS#
04100 MOVEI 2,1(1)
04200 PEEK 2,
04300 MOVEM 2,NSAERR#
04400 MOVEI 2,2(1)
04500 PEEK 2,
04600 MOVEM 2,NLREQS#
04700 MOVEI 2,3(1)
04800 PEEK 2,
04900 MOVEM 2,NLRERS#
05000
05100 OUTSTR [ASCIZ /TIME OF DAY = /]
05200 PUSHJ P,PRTIME
05300 PUSHJ P,CRLF
05400 OUTSTR [ASCIZ /UPTIME = /]
05500 PUSHJ P,UPTIME
05600 PUSHJ P,CRLF
05700 OUTSTR [ASCIZ /NUMBER OF TRANSFERS = /]
05800 MOVE 1,NLREQS
05900 PUSHJ P,DECPNT
06000 PUSHJ P,CRLF
06100 OUTSTR [ASCIZ /NUMBER OF RETRIES = /]
06200 MOVE 1,NLRERS
06300 SUB 1,NLREQS
06400 PUSHJ P,DECPNT
06500 PUSHJ P,CRLF
06600 OUTSTR [ASCIZ /NUMBER OF TIMES WE DID ERROR RETRIES AND WON = /]
06700 MOVE 1,NSAERR
06800 PUSHJ P,DECPNT
06900 PUSHJ P,CRLF
07000 OUTSTR [ASCIZ /NUMBER OF ERRORS = /]
07100 MOVE 1,NLERRS
07200 PUSHJ P,DECPNT
07300 PUSHJ P,CRLF
07400 MOVE 1,NLERRS
07500 IMULI 1,=100
07600 IDIV 1,NLREQS
07700 OUTSTR [ASCIZ /PERCENTAGE OF TRANSFERS THAT TERMINATED WITH ERROR = /]
07800 PUSHJ P,DECPNT
07900 OUTSTR [ASCIZ /%
08000 /]
08100 MOVEI 1,[ASCIZ /SYSTEM BAND OK
08200 /]
08300 MOVEI 2,400100
08400 UFBRD 2,[
08500 RDTAB: SYSBUF
08600 40
08700 0]
08800 MOVEI 1,[ASCIZ /*** CAN'T READ SYSTEM BAND ***
08900 /]
09000 OUTSTR (1)
09100 OUTSTR [ASCIZ /BANDS 0-57,71,102-105,112,132,136 ARE PERMANENTLY BAD
09200 TOTAL PERMANENT BAD BANDS = 56 (DECIMAL).
09300 SYSTEM BAND IS 100. NUMBERS OF BANDS CURRENTLY AVOIDED ARE:
09400 /]
09500 MOVEI 3,261
09600 PEEK 3,
09700 MOVEI 4,(3)
09800 ADDI 3,60
09900 BBLOP: MOVEI 1,(3)
10000 PEEK 1,
10100 CAME 1,[-1]
10200 JRST BBINC
10300 MOVEI 1,(3)
10400 SUBI 1,(4)
10500 CAIE 1,71
10600 CAIN 1,102
10700 JRST BBINC
10800 CAIE 1,103
10900 CAIN 1,104
11000 JRST BBINC
11100 CAIE 1,105
11200 CAIN 1,112
11300 JRST BBINC
11400 CAIE 1,132
11500 CAIN 1,136
11600 JRST BBINC
11700 CAIN 1,100
11800 JRST BBINC
11900 PUSHJ P,OCTPNT
12000 OUTSTR [ASCIZ / /]
12100 BBINC: ADDI 3,1
12200 CAIGE 3,170(4)
12300 JRST BBLOP
12400 OUTSTR [ASCIZ /
12500 BAND NUMBERS ARE IN OCTAL
12600 /]
12700 MOVEI 3,5
12800 RDTEST: SKIPGE 1,GOTB(3)
12900 JRST NOBAND
13000 UFBRD 1,RDTAB
13100 JRST RDERR
13200 NOBAND: SOJGE 3,RDTEST
13300 PUSHJ P,CRLF
13400 PUSHJ P,CRLF
13500 PUSHJ P,CRLF
13600 MOVEI 1,=10
13700 MOVEM 1,NMINS
13800 SLOOP: MOVEI 1,7777/=60
13900 SLEEP 1,
14000 SOSLE NMINS
14100 JRST SLOOP
14200 JRST BIGLOP
14300
14400 RDERR: OUTSTR [ASCIZ /READ ERROR ON BAND /]
14500 MOVE 1,GOTB(3)
14600 ANDI 1,777
14700 PUSHJ P,OCTPNT
14800 OUTSTR [ASCIZ / OVER TIME INTERVAL /]
14900 DATIME 5,
15000 SUB 5,BTIMES(3)
15100 SKIPGE 5
15200 ADD 5,[=24*=60*=60*=60]
15300 PUSHJ P,PRTIM1
15400 PUSHJ P,CRLF
15500 DATIME 5,
15600 MOVEM 5,BTIMES(3)
15700 SOS 1,LSTSEC
15800 GOTIT: MOVEM 1,GOTB(3)
15900 UFBGET 1,
16000 JRST [ SOS 1,LSTSEC
16100 CAIL 1,400060
16200 JRST GOTIT
16300 SETOM GOTB(3)
16400 JRST GOON]
16500 GOON: JRST NOBAND
16600
16700 WRTERR: OUTSTR [ASCIZ /WRITE ERROR ON INITIAL WRITEOUT
16800 THIS MEANS WE ARE WRITING ON A BAD-BANDED BAND.
16900 /]
17000 SOS 1,LSTSEC
17100 GTWRB: MOVEM 1,GOTB(2)
17200 UFBGET 1,
17300 JRST [ SOS 1,LSTSEC
17400 CAIL 1,400060
17500 JRST GTWRB
17600 SETOM GOTB(2)
17700 JRST GOWR]
17800 DATIME 5,
17900 MOVEM 5,BTIMES(2)
18000 GOWR: JRST WRTINC
18100
18200 CRLF: OUTSTR [ASCIZ /
18300 /]
18400 POPJ P,
18500
18600 DECPNT: IDIVI 1,=10
18700 HRLM 2,(P)
18800 SKIPE 1
18900 PUSHJ P,DECPNT
19000 HLRZ 2,(P)
19100 ADDI 2,"0"
19200 OUTCHR 2
19300 POPJ P,
19400
19500 OCTPNT: IDIVI 1,10
19600 HRLM 2,(P)
19700 SKIPE 1
19800 PUSHJ P,OCTPNT
19900 HLRZ 2,(P)
20000 ADDI 2,"0"
20100 OUTCHR 2
20200 POPJ P,
20300
20400 UPTIME: MOVEI 5,215
20500 PEEK 5,
20600 PEEK 5,
20700 JRST PRTIM1
20800
20900 PRTIME: CALLI 5,22 ; GET TIME IN TIX
21000 PRTIM1: IDIVI 5,=3600 ; GET MINUTES IN 5
21100 IDIVI 5,=60 ; GET HOURS IN 5, MINUTES IN 6
21200 CAIGE 5,=10
21300 OUTCHR ["0"]
21400 MOVEI 1,(5)
21500 PUSHJ P,DECPNT
21600 CAIGE 6,=10
21700 OUTCHR ["0"]
21800 MOVEI 1,(6)
21900 JRST DECPNT
22000
22100 END START